package org.springside.modules.utils;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexUtil {
	public static final String EMAIL = "[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+";

	/**
	 * 在指定的内容中，用正则表达式进行查找，返回所有的匹配结果。
	 * 
	 * @param content 指定的内容
	 * @param regex 正则表达式
	 * @param group 0:匹配全文，1：指定的分组
	 * @return 以列表形式返回的匹配结果
	 */
	public static List getMatchGroupList(String content, String regex, int group) {
		List list = new ArrayList();
		if (content == null || content.equals("")) {
			return list;
		}

		Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
		Matcher matcher = pattern.matcher(content);
		while (matcher.find()) {
			String tmp = matcher.group(group);
			if (tmp != null) {
				list.add(tmp);
			}
		}
		return list;
	}

	/**
	 * 在指定的内容中，用正则表达式进行查找，返回唯一的匹配结果（最左匹配）。
	 * 
	 * @param content 指定的内容
	 * @param regex 正则表达式
	 * @param group 0:匹配全文，1：指定的分组
	 * @return 匹配结果
	 */
	public static String getMatchGroup(String content, String regex, int group) {
		String result = "";
		if (content == null || content.equals("")) {
			return result;
		}

		Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
		Matcher matcher = pattern.matcher(content);
		// 开始匹配
		if (matcher.find()) {
			result = matcher.group(group);
		}

		return result;
	}

}
